package com.itshen.controller;

import cn.hutool.core.bean.BeanUtil;
import com.itshen.dto.ItemDTO;
import com.itshen.result.Result;
import com.itshen.service.ItemService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
@RequiredArgsConstructor
@RequestMapping("/item")
public class ItemController {

    private final ItemService itemService;

    /**
     * 查询全部
     * @param
     * @return
     */
    @GetMapping("/search")
    public List<ItemDTO> search(){
        return itemService.search();
    }

    /**
     * 获取单个商品信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public ItemDTO queryItemById(@PathVariable("id") Long id) {
        return BeanUtil.copyProperties(itemService.getById(id), ItemDTO.class);
    }

    /**
     * 更新商品信息
     * @param item
     */
    @PutMapping("/{id}")
    public void updateItem(@RequestBody ItemDTO item) {
        itemService.updateById(item);
    }


    @PostMapping("/order/place")
    public Result<String> deductInventory(@RequestBody Map<Long,Integer> itemId_Num){
        return itemService.deductInventory(itemId_Num);
    }


//    /**
//     * 新增商品
//     * @param item
//     */
//    @PostMapping
//    public void saveItem(@RequestBody ItemDTO item) {
//        // 新增
//        itemService.save(BeanUtil.copyProperties(item, Item.class));
//    }


//    /**
//     * 删除商品
//     * @param id
//     */
//    @DeleteMapping("/{id}")
//    public void deleteItemById(@PathVariable("id") Long id) {
//        itemService.removeById(id);
//    }

}
